"use client"; /* eslint-disable @next/next/no-img-element */ import { claimActivityReward } from "@/api/activity"; import { UserVipInfo } from "@/api/user"; import GlobalNotify from "@/components/ModalPopup/GlobalNotifyModal"; import { BoxListCom } from "@/components/ModalPopup/SignInModal"; import { useSignStore } from "@/stores/useSignStore"; import { formatAmount } from "@/utils"; import { server } from "@/utils/client"; import { Toast } from "antd-mobile"; import BigNumber from "bignumber.js"; import { useTranslations } from "next-intl"; import { useSearchParams } from "next/navigation"; import { FC, useEffect, useMemo, useState } from "react"; const getVipApi = async () => { return server .request({ url: "/v1/api/user/user_vip_info", method: "POST", }) .then((res) => { if (res.code === 200) return res.data; }); }; const SignIn: FC = () => { const searchParams = useSearchParams(); const activity_id = Number(searchParams.get("activity_id")); const t = useTranslations("signInPage"); const tCode = useTranslations(); const [vipInfo, setVipInfo] = useState(null); const [visible, setVisible] = useState(false); const [amount, setAmount] = useState({}); useEffect(() => { getVipInfo(); }, []); const getVipInfo = async () => { const vipInfoRes = await getVipApi(); if (vipInfoRes) { setVipInfo(vipInfoRes); } }; const { getSignData, signData } = useSignStore((state) => ({ signData: state.signData, getSignData: state.getSignData, })); useEffect(() => { getSignData({ activity_id }); }, []); const curData = useMemo(() => { if (!signData || !signData.list || signData.cur_num == undefined) return null; return signData.list[signData.cur_num]; }, [signData]); const doClaim = async () => { if (!curData) return null; try { const res = await claimActivityReward({ activity_id, id: curData.id as number, }); if (res.code === 200 && res?.data?.code === 1) { getSignData({ activity_id }); if (res?.data?.reward) { const amountObj: any = {}; res?.data?.reward.forEach((item: any) => { amountObj[`coin_${item.coin_type}`] = formatAmount(item.amount); }); //extra_reward res?.data?.reward.forEach((item: any) => { amountObj[`coin_${item.coin_type}`] = formatAmount( new BigNumber(amountObj[`coin_${item.coin_type}`] || 0) .plus(item.amount) .toString() ); }); setAmount(amountObj); } setVisible(true); } else { throw new Error(tCode(`code.400`)); } } catch (error: any) { if (error) { Toast.show({ content: error.message || error.toString(), maskClickable: false, }); } } }; return ( <>
{/* 主题图片及背景 */}

VIP {vipInfo?.vip_level || 0}

quanto maior o nível VlP, mais abundantes s?o as recompensas

{/* 活动背景 */}
{/* 右上角文本 */}

{signData?.cur_num ? signData?.cur_num + 1 : 0}

Day {signData?.list?.length || 0}

{/* 免费盒子 */}
{/* 充值盒子 */} {/*
*/} {/* 签到按钮 */}
Sign-in
{/* 活动描述文本背景 */}
{/* title标题 */}

Activity dedscription

{/* 描述内容 */}
  • {t("desc1")}
  • {t("desc2")}
  • {t("desc3")}
  • {t("desc4")}
  • {t("desc5")}
  • {t("desc6")}
setVisible(false)} deraction={5000} >
); }; export default SignIn;